package agenda.datos;

import java.util.ArrayList;
import java.util.Arrays;

import es.uji.www.GeneradorDatosINE;

public class AgendaEx extends Agenda{
 
private final static int NROREGISTROS = 100;

//private EntradaEx listaDeEntradas[] = new  EntradaEx[NROREGISTROS] ;
//public ArrayList <EntradaEx> listaDeEntradas=new ArrayList<>();

public int nroReg = 0 ;
 

public void procesar () {
	  GeneradorDatosINE generator = new GeneradorDatosINE() ;
	  EntradaEx reg ;
	  String nombre  ;	
	  String apellido ;
	  String tf ;
	  String direccion;
	  String provincia;
	  int edad;
	  for(int i=0;i<90;i++) {   
		  
	     nombre = generator.getNombre () ;	
	     apellido = generator.getApellido() ;
	     tf = ""+i ;
	     edad= generator.getEdad();
	     provincia=generator.getProvincia();
	     direccion=generator.getPoblacion(provincia);
	     reg  = new  PersonaEx ( nombre,tf,provincia +":"+ direccion, apellido, edad);
	     nuevoRegistro (reg );
	     		
	     nroReg+=1;
	  }
}


public void procesarTxt () {
	  LeerDatos datos = new LeerDatos() ;
	  
	  EntradaEx reg ;
	  String nombre  ;	
	  String apellido ;
	  String tf ;
	  String direccion;
	  String provincia;
	  int edad;
	  String [] campos= new String[10];
	  String [] cadena =new String[10];
	  for(String s:datos.Datos()) { 
	     //cadena= s.split("Persona [");
	     campos=s.split("#");
	     nombre = campos[0] ;	
	     apellido = campos[1] ;
	     tf = campos[2];
	     edad= nroReg;
	     direccion=campos[4];
	     reg  = new  PersonaEx ( nombre,tf,direccion, apellido, edad);
	     nuevoRegistro (reg );
	     		
	     nroReg+=1;
	  }
}
//public int nuevoRegistro(EntradaEx entrada){
//	//listaDeEntradas.[nroReg] = entrada ;
//    listaDeEntradas.add( entrada);
//       return nroReg ;
//    listaDeEntradas.size();
//}




public void nuevoRegistro(EntradaEx entrada) {
	listaDeEntradas.add(entrada);
}

//public EntradaEx[] listarEntradas(){
    //if (nroReg==0)
    //	    return null;
    //	else
    //	return Arrays.copyOfRange(listaDeEntradas,0,nroReg);
    // }

 /*   public ArrayList<EntradaEx> listarEntradas() throws ExcepcionAgendaVacia {
	if (listaDeEntradas.isEmpty()) throw new ExcepcionAgendaVacia();
	return listaDeEntradas;	    
    }   


public ArrayList<EntradaEx> buscar(String nombre) throws ExcepcionEntradaNoEncontrada  {
    //EntradaEx[] buscarTodos=new PersonaEx[NROREGISTROS];
    ArrayList<EntradaEx> buscarTodos= new ArrayList<>();
   // ExcepcionEntradaNoEncontrada e =new ExcepcionEntradaNoEncontrada()

    for (EntradaEx p:listaDeEntradas){ 
    if(nombre.equalsIgnoreCase(p.getNombre())) {
            buscarTodos.add(p);
        }
    }
    if (buscarTodos.size()>=0){
    return buscarTodos;
    } else {
	 throw new ExcepcionEntradaNoEncontrada("Nombre no se ha encontrado");
    }

}
*/ 
public ArrayList<EntradaEx> buscarDireccion(String Direccion) {
    ArrayList<EntradaEx> buscarTodos=new ArrayList<>();
    //int j=0;
/*    for(int i=0;i<nroReg;i++) {
        if(Direccion.equalsIgnoreCase(listaDeEntradas [i].getDireccion())) {
            buscarTodos[j]=listaDeEntradas [i];
            j++;
        }
    }*/
    if (buscarTodos.size()>=0){
    return buscarTodos;
    } else {
	  return null;
    }
}

public int entradasAgenda() {
	return nroReg ;  
}

public Boolean nueva(EntradaEx reg) {
	    listaDeEntradas.add(reg);
	    nroReg += 1;
	    return true;
	}


public int nuevaEntrada(EntradaEx entrada){
	listaDeEntradas.add(entrada) ;
	return listaDeEntradas.size() ; 
}
}
